// SADSDSA.cpp : Defines the entry point for the console application.
/*
Scrivere un programma che prevede le seguenti voci di menù:
1)Lettura, che legge in input due stringhe di lunghezza 10 char, no less, no more
2)Carica diagonali, che inserisce la prima stringa sulla diagonale principale della matrice
e la seconda stringa a quella secondaria
Stringhe inserite solo che il carattere in mezzo è uguale
3)Genera stringa 3 prendendo i caratteri presenti sulle diagonali al contrario partendo da quella secondaria a quella principale
*/

#include "stdafx.h"
#include <iostream>
#include <string>
#define LUNG 11
using namespace std;

void menu();
void leggi(char prima[], char seconda[]);
void carica(char prima[], char seconda[], char matrice[][LUNG]);
void genera(char matrice[][LUNG]);
void visualizza(char matrice[LUNG][LUNG]);

int _tmain(int argc, _TCHAR* argv[])
{
	menu();
	system("pause");
	return 0;
}

void menu()
{
	int scelta;
	char prima[LUNG];
	char seconda[LUNG];
	char matrice[LUNG][LUNG];
	do
	{
		system("cls");
		printf("1.Lettura\n");
		printf("2.Caricamento\n");
		printf("3.Generazione\n");
		printf("4.Visualizza\n");
		cin>>scelta;
		switch(scelta)
		{
		case 1:
			leggi(prima, seconda);
			break;
		case 2:
			carica(prima, seconda, matrice);
			break;
		case 3:
			genera(matrice);
			break;
		case 4:
			visualizza(matrice);
			break;		
		}
	}while(scelta!=0);
}

void leggi(char prima[], char seconda[])
{
	do
	{
	do
	{
	printf("Inserisci la prima stringa\n");
	cin>>prima;
	}while(strlen(prima)!=LUNG);
	do
	{
	printf("Inserisci la seconda stringa");
	cin>>seconda;
	}while(strlen(seconda)!=LUNG);
	}while(prima[LUNG/2]!=seconda[LUNG/2]);
}

void carica(char prima[], char seconda[], char matrice[][LUNG])
{
	for(int j=0;j<LUNG;j++)
	{
		for(int i=0;i<LUNG;i++)
		{
			matrice[j][i]=' ';
			if(i==j)
			matrice[j][i]=prima[i];
			if(i+j==LUNG-1)
			matrice[j][i]=seconda[i];
		}
	}
}

void genera(char matrice[][LUNG])
{
	char terza[LUNG*2];
	for(int j=LUNG;j>0;j--)
	{
		for(int i=LUNG;i>0;i--)
		{
			if(i==j)
			terza[LUNG+j]=matrice[j][i];
			if(i+j==LUNG)
			terza[strlen(terza)-i]=matrice[j][i];
		}
	}
	printf("\n%s", terza);
}

void visualizza(char matrice[][LUNG])
{
	for(int j=0;j<LUNG;j++)
	{
	for(int k=0;k<LUNG;k++)
	{
	printf("%c", matrice[j][k]);
	}
	printf("\n");
	}
	system("pause");
}